using System;
using System.Data;
using System.Data.SqlClient;
using System.Collections.Generic;
using Credinka.Ayni.SEA.EN;
using Credinka.Ayni.SEA.AD;
namespace Credinka.Ayni.SEA.RN
{

    public class rnMenu : rnGeneral
    {
        adMenu oadMenu;
        adFormulario oadFormulario;

        public enMenu Obtener(enMenu poenMenu)
        {
            enMenu oenMenu = null;
            using (SqlConnection con = new SqlConnection(sConexion))
            {
                try
                {
                    con.Open();
                    oenMenu = new enMenu();
                    oadMenu = new adMenu(con);
                    oenMenu = oadMenu.fObtener(poenMenu);
                }
                catch (SqlException ex)
                {
                }
            }
            return oenMenu;
        }

        public List<enMenu> Listar(enMenu poenMenu)
        {
            List<enMenu> loenMenu = null;
            using (SqlConnection con = new SqlConnection(sConexion))
            {
                try
                {
                    con.Open();
                    loenMenu = new List<enMenu>();
                    oadMenu = new adMenu(con);
                    loenMenu = oadMenu.fListar(poenMenu);
                }
                catch (SqlException ex)
                {
                }
            }
            return (loenMenu);
        }

        public List<enMenu> ReporteListarMenuPorPerfil(int pIdPerfil)
        {
            List<enMenu> loenMenu = null;
            using (SqlConnection con = new SqlConnection(sConexion))
            {
                try
                {
                    con.Open();
                    loenMenu = new List<enMenu>();
                    oadMenu = new adMenu(con);
                    loenMenu = oadMenu.fReporteListarMenuPorPerfil(pIdPerfil);
                }
                catch (SqlException ex)
                {
                }
            }
            return (loenMenu);
        }

        public List<enMenu> ListarPorPerfil(int poIdPerfil)
        {
            List<enMenu> loenMenu = null;
            using (SqlConnection con = new SqlConnection(sConexion))
            {
                try
                {
                    con.Open();
                    loenMenu = new List<enMenu>();
                    oadMenu = new adMenu(con);
                    loenMenu = oadMenu.fListarPorPerfil(poIdPerfil);
                }
                catch (SqlException ex)
                {
                }
            }
            return (loenMenu);
        }

        public List<enMenu> ListarPorSistema(int poiCodigoSistema)
        {
            List<enMenu> loenMenu = null;
            using (SqlConnection con = new SqlConnection(sConexion))
            {
                try
                {
                    con.Open();
                    loenMenu = new List<enMenu>();
                    oadMenu = new adMenu(con);
                    loenMenu = oadMenu.fListarPorSistema(poiCodigoSistema);
                }
                catch (SqlException ex)
                {
                }
            }
            return (loenMenu);
        }

        public int Registrar(enMenu poenMenu)
        {
            int N = -1;
            using (SqlConnection con = new SqlConnection(sConexion))
            {
                try
                {
                    con.Open();
                    oadMenu = new adMenu(con);
                    N = oadMenu.fRegistrar(poenMenu);

                    if (poenMenu.IdFormulario != 0)
                        poenMenu.IdMenu = N;
                        oadMenu.fModificar(poenMenu);
                }
                catch (SqlException ex)
                { }
            }
            return (N);
        }

        public int Modificar(enMenu poenMenu)
        {
            int N = -1;
            using (SqlConnection con = new SqlConnection(sConexion))
            {
                try
                {
                    con.Open();
                    oadMenu = new adMenu(con);
                    N = oadMenu.fModificar(poenMenu);
                }
                catch (SqlException ex)
                {
                }
            }
            return (N);
        }

        public int Eliminar(enMenu poenMenu)
        {
            int N = -1;
            using (SqlConnection con = new SqlConnection(sConexion))
            {
                try
                {
                    con.Open();
                    oadMenu = new adMenu(con);
                    N = oadMenu.fEliminar(poenMenu);
                }
                catch (SqlException ex)
                {
                }
            }
            return (N);
        }

        public int Contar()
        {
            int totalMenu = -1;
            using (SqlConnection con = new SqlConnection(sConexion))
            {
                try
                {
                    con.Open();
                    oadMenu = new adMenu(con);
                    totalMenu = oadMenu.fContar();
                }
                catch (SqlException ex)
                {
                }
            }
            return (totalMenu);
        }
    }
}
